Method for providing buttons for use with multiple pointing devices on a laptop computer

ABSTRACT

One embodiment of the present invention provides a portable computing device comprising a housing including a keyboard. The embodiment also includes a first pointing device coupled to the housing, as well as a second pointing device coupled to the housing between the keyboard and a first edge of the housing. The embodiment additionally includes a plurality of buttons disposed on the housing so that at least one button is located between the first pointing device and the second pointing device, and at least one button is located between the glide point and the first edge of the housing. In another embodiment, the plurality of buttons is movably disposed on the housing so that when buttons are located in a first position, at least one button is located between the first pointing device and the second pointing device, and when buttons are located in a second position, at least one button is located between the second pointing device and the first edge of the housing. The term pointing devices refers to any manually operated input device that can be used to move a cursor around a computer display, such as a mouse, a track ball, a pointing stick or a glide point.

RELATED APPLICATION

This application hereby incorporates by reference the following relatednon-provisional application by the same inventors as the instantapplication, and filed on the same day as the instant application:"Laptop With Buttons Configured for Use With Multiple Pointing Devices,"having Ser. No. 08/937,211, and filing date Sep. 17, 1997.

BACKGROUND

1. Field of the Invention

The present invention relates to portable computing devices, and moreparticularly to laptop computers including multiple pointing devices,such as a pointing stick and a glide point, that are operated in concertwith proximately located mouse buttons.

2. Related Art

As computer users increasingly navigate through window-based userinterfaces, data input devices, such as a mouse, have become standardfeatures on modem computer systems. These data input devices aretypically used to move a cursor around a graphical display, and theytypically include associated buttons, such as mouse buttons, which areused select and activate graphical objects located under the cursor.

Providing a data input device, such as a mouse, on a portable computingsystem presents a number of challenges. These portable computingdevices, such as laptop computers, are often used on airplanes, buses ortrains, where there is no room for an external pointing device such as amouse to be used. Consequently, different types of pointing devices havebeen integrated into portable computers, including: pointing sticks,glide points and track balls. The term "pointing device" is used in thespecification to refer to any manually operated input device that can beused to move a cursor around a computer display, this includes but isnot limited to: a mouse, a track ball, a pointing stick and a glidepoint.

A pointing stick typically takes the form of a short stick, often with arubber tip, protruding perpendicularly from the surface of the portablecomputer. It is often located between keys on a computer keyboard foreasy accessibility. If force is applied to the pointing stick in adirection parallel to the surface of the portable computer, the pointingstick will pivot so as to specify a direction relative to the surface ofthe portable computer. This direction is typically used to move a cursoraround the portable computer screen. The pointing stick is typicallybiased so that it returns to a position perpendicular to the surface ofthe portable computing device when released.

A glide point is another type of pointing device that typically takesthe form of a plate embedded in the portable computer surface that issensitive to the touch of a finger. A glide point can detect the fingerthrough a variety of means, including capacitive sensors, resistancesensors and pressure sensors. A glide point is typically designed sothat when a finger touches the glide point, associated circuitrydetermines a location on the plate where the finger touches the glidepoint surface. By "gliding" a finger along the glide point surface, auser can specify a velocity and a direction of travel for a cursor on agraphical display.

A track ball is another type of pointing device that typically takes theform of a ball disposed within a recess in the portable computing deviceso that the ball is able to freely rotate about its center. By rotatingthe ball in a particular direction, the user can specify a displacementof the cursor on the graphical display.

Pointing devices such as glide points, pointing sticks and track ballsare typically used in conjunction with buttons, as are found on a mouse,to select graphical objects located under the cursor. These buttons aretypically located near the pointing device so that the buttons can beoperated by the same hand that controls the pointing device.

This gives rise to a problem for portable computing devices that includemultiple pointing device, such as for example a pointing stick and aglide point. If the buttons are located near the glide point, thebuttons cannot be easily manipulated by a hand while the hand operatesthe pointing stick. If the buttons are located near the pointing stick,the buttons cannot be easily manipulated by a hand while the handoperates the glide point.

What is needed is portable computing system with multiple pointingdevices, such as a pointing stick and a glide point, that providesbuttons that can easily be manipulated by a hand that is operating thepointing stick, as well as buttons that can be easily manipulated by ahand that is operating the glide point.

SUMMARY

One embodiment of the present invention provides a portable computingdevice comprising a housing including a keyboard. The embodiment alsoincludes a first pointing device coupled to the housing, as well as asecond pointing device coupled to the housing between the keyboard and afirst edge of the housing. The embodiment additionally includes aplurality of buttons disposed on the housing so that at least one buttonis located between the first pointing device and the second pointingdevice, and at least one button is located between the glide point andthe first edge of the housing. In another embodiment, the plurality ofbuttons is movably disposed on the housing so that when buttons arelocated in a first position, at least one button is located between thefirst pointing device and the second pointing device, and when buttonsare located in a second position, at least one button is located betweenthe second pointing device and the first edge of the housing. The termpointing devices refers to any manually operated input device that canbe used to move a cursor around a computer display, such as a mouse, atrack ball, a pointing stick or a glide point.

Thus, the present invention can be characterized as a portable computingdevice, comprising a housing and first and second pointing devicescoupled to the housing. The portable computing device also may include aplurality of buttons disposed on the housing so that at least one can beoperated by a hand while the hand operates the first pointing device,and at least one can be operated by the hand while the hand operates thesecond pointing device. In one embodiment, the first pointing deviceincludes a pointing stick. In another embodiment, the second pointingdevice includes a glide point. In yet another embodiment, the secondpointing device includes a track ball.

In another embodiment of the present invention, a button in theplurality of buttons disposed on the housing is movably disposed on thehousing so that when the button is located in a first position, thebutton can be operated by a hand while the hand operates the firstpointing device, and when the button is located in a second position thebutton can be operated by the hand while the hand operates the secondpointing device.

In another embodiment of the present invention, the plurality of buttonsincludes a first pointing device button to be used in conjunction withthe first pointing device, and a second pointing device button to beused in conjunction with the second pointing device. The portablecomputing device further includes a mechanism that determines which oneof the first pointing device button and the second pointing devicebutton is active based upon which one of the first pointing device andthe second pointing device was most recently used.

In another embodiment of the present invention, the portable computingdevice includes a mechanism that determines which one of the firstpointing device button and the second pointing device button is activebased upon system configuration information located in the portablecomputing device.

One embodiment of the present invention can be characterized as datainput module that is mountable on a portable computing device. Oneembodiment of the data input module includes: a module housing that ismountable on a portable computing device in a first position and asecond position, as well as a second pointing device disposed on themodule housing. This embodiment also includes a button disposed on themodule housing so that when the module housing is mounted in the firstposition, the button is associated with a first pointing so that it canbe operated by a hand while the hand operates the first pointing device.Furthermore, when the module housing is mounted in the second position,the button can be operated by the hand while the hand operates thesecond pointing device.

In one embodiment of the present invention, the data input moduleincludes a plurality of module contacts disposed on the module housingfor electrically coupling the second pointing device and the button to aplurality of computer contacts located on the portable computing device.These contacts are configured in such a way that module contactscommunicate with a first set of computer contacts when the modulehousing is mounted in the first position, and the module contactscommunicate with a second set of computer contacts when the modulehousing is mounted in the second position. This allows the portablecomputing device to ascertain whether the module housing is mounted inthe first position by passing electrical signals through the pluralityof computer contacts.

In another embodiment of the present invention, the data input moduleincludes a contact surface that activates a switch disposed on theportable computer system when the data input module is mounted to theportable computer device in the first position. This allows the portablecomputer device to determine whether the data input module is mounted inthe first position by examining the switch.

One embodiment of the present invention can be characterized as portablecomputing device, including: a housing; a first pointing device coupledto the housing; and a mounting surface on the housing adapted to receivea data input module, where the data input module includes a button and asecond pointing device mounted on the data input module. The portablecomputing device additionally includes a plurality of computer contactsdisposed on the mounting surface for receiving electrical signals fromthe button and the second pointing device on the data input module.

Another embodiment can be characterized as method for receiving userinput in a portable computing system, which operates in a portablecomputing system, including: a housing, a first pointing device, asecond pointing device, and a plurality of buttons disposed on thehousing to receive user input. The method includes receiving input froma first button in the plurality of buttons associated with the firstpointing device when the first pointing device is in use. This allowsthe first button to be operated by a hand while the hand operates thefirst pointing device. The method also includes receiving input from asecond button in the plurality of buttons associated with the secondpointing device when the second pointing device is in use. This allowsthe second button to be operated by a hand while the hand operates thesecond pointing device.

One embodiment of the present invention can be characterized as a methodfor configuring data input devices in a computer system. The methodoperates in a portable computer system including a housing and aremovable data input module, where the data input module includes amechanism to accept manually inputted data. The method includes removingthe data input module in a first configuration from the housing;attaching the data input module to the housing in a secondconfiguration; and inputting commands manually into the data inputmodule.

DESCRIPTION OF THE FIGURES

FIG. 1 illustrates portable computer 100 including pointing stick 132and pointing stick buttons 130, as well as glide point 134 and glidepoint buttons 136 in accordance with an embodiment of the presentinvention.

FIG. 2 illustrates portable computer 100 including data input module200, which itself includes glide point 134 and buttons 210 in accordancewith an embodiment of the present invention.

FIG. 3 illustrates how data input module 200 can be rotated so thatbuttons 210 are close proximity to pointing stick 132 or in closeproximity to glide point 134 in accordance with an embodiment of thepresent invention.

FIG. 4 illustrates how module contacts 420 on the underside of datainput module 400 are oriented so as to receive computer contacts 450 inaccordance with an embodiment of the present invention.

FIG. 5 illustrates how contact switch 510, which fits into a recess 500,can be used to determine an orientation of data input module 200 inaccordance with an embodiment of the present invention.

FIG. 6 is a diagram illustrating data input module 200 with optionalglide point 134 in accordance with an embodiment of the presentinvention.

FIG. 7 is a flow chart illustrating how buttons are activated dependingupon which pointing device is in use in accordance with an embodiment ofthe present invention.

FIG. 8 is a flow chart illustrating how a button is activated dependingupon the location of the button in accordance with an embodiment of thepresent invention.

FIG. 9 is a flow chart illustrating how buttons are activated dependingupon which button was most recently used in accordance with anembodiment of the present invention.

FIG. 10 is a flow chart illustrating how buttons are activated basedupon system configuration information in accordance with an embodimentof the present invention.

FIG. 11 is a flow chart illustrating a method of removing data inputmodule 200 and reattaching it in another configuration in accordancewith an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The following description is presented to enable any person skilled inthe art to make and use the invention, and is provided in the context ofa particular application and its requirements. Various modifications tothe disclosed embodiments will be readily apparent to those skilled inthe art, and the general principles defined herein may be applied toother embodiments and applications without departing from the spirit andscope of the present invention. Thus, the present invention is notintended to be limited to the embodiments shown, but is to be accordedthe widest scope consistent with the principles and features disclosedherein.

Description of First Embodiment

FIG. 1 illustrates portable computer 100 including pointing stick 132and pointing stick buttons 130, as well as glide point 134 and glidepoint buttons 136 in accordance with an embodiment of the presentinvention. Portable computer 100 may be any portable computing device,such as a laptop computer, a note book computer, or a palmtop computer,or a smaller personal organizer. Any type of computer system can be usedso long as it makes use of a pointing device that is incorporated intothe body of a computer system, such as pointing stick, a glide point ora track ball.

Portable computer 100 includes display 110, for displaying graphical andcharacter output to a user, as well as keyboard 120, which acceptscharacter-based input from the user. Portable computer 100 additionallyincludes two pointing devices for controlling the position of a cursorwithin display 110. These pointing devices may include pointing stick132, which is located within keyboard 120, as well as glide point 134,which is located between keyboard 120 and an edge of portable computer100.

These pointing devices have associated buttons to be used in concertwith the pointing devices, in order to select and manipulate graphicaland/or character objects located below an associated cursor on display110. These may include pointing stick buttons 130 and glide pointbuttons 136. In this specification, mouse buttons are described as being"associated with" a pointing device. In one sense, this means that thebuttons are conveniently located so that the buttons can be operated bya hand, while the hand operates the associated pointing device. Forexample, when pointing stick 132 is operated by an index finger or amiddle finger of a hand, other fingers and the thumb can concurrentlyoperate pointing stick buttons 130. Similarly, when glide point 134 isoperated by an index finger or a middle finger of a hand, the otherfingers and the thumb can concurrently operate glide point buttons 136.In another sense, the term "associated with" means to be used inconjunction with. For example, a pointing device can be used to move acursor about a graphical display, while an associated button can be usedto select and activate objects under the cursor.

Note that if two sets of buttons were not provided, such concurrent maynot be possible using only a single hand. For example, if pointing stickbuttons 130 were not provided, then a user would have a hard timeoperating pointing stick 132 concurrently with buttons 136 with a singlehand because of the significant distance between pointing stick 132 andglide point buttons 136.

Description of Second Embodiment

FIG. 2 illustrates portable computer 100 including data input module200, which itself includes glide point 134 and buttons 210 in accordancewith an embodiment of the present invention. Portable computer 100illustrated in FIG. 2 is the same as portable computer 100 illustratedin FIG.1, except that the system illustrated in FIG. 2 includes datainput module 200 in place of: pointing stick buttons 130, glide point134 and glide point buttons 136. Data input module 200 includes glidepoint 134, as well as buttons 210. Buttons 210 may be used inconjunction with glide point 134 in the configuration illustrated inFIG. 2.

Alternatively, as illustrated in FIG. 3, data input module 200 may beremoved, rotated, and mounted on portable computer 100 in an alternateorientation, which places buttons 210 closer to pointing stick 132 tofacilitate concurrent operation of the pointing stick 134 with buttons210 by a single hand.

In the above embodiment, it is desirable that portable computer 100 beable to detect the orientation of data input module 200, so that thefunctions of buttons 210 may be reversed to compensate for the rotationof buttons 210, and so that glide point 134 may be disabled when datainput module 200 is oriented to facilitate operation of buttons 210 withpointing device 132. Two different methods of accomplishing this areillustrated in FIGS. 4 and 5.

FIG. 4 illustrates how module contacts 420 on the underside of a datainput module 200 are oriented so as to receive sets of computer contacts450 in two different configurations in accordance with an embodiment ofthe present invention. FIG. 4 illustrates the underside of data inputmodule 200 in a first orientation and a second orientation. Theunderside of data input module 200 may include module contacts 420. FIG.4 additionally illustrates a set of computer contacts 430 disposed onmounting surface 450 of portable computer 100. Module contacts 420 aredesigned to receive computer contacts 430 so as to electrically coupleglide point 134 and buttons 210 on data input module 200 to circuitrywithin portable computer 100.

In a first orientation, module contacts 420 are near the lower edge ofthe underside of data input module 200. In this orientation, modulecontacts 420 receive a lower row of computer contacts 430. Data inputmodule 200 can be rotated into a second orientation, in which modulecontacts 420 are near the upper edge of the underside of data inputmodule 200. In this orientation, module contacts 420 receive an upperrow of computer contacts 430. Portable computer 100 determines theorientation of data input module 100, by passing electrical signalsthrough either the upper or lower row of computer contacts 430.

Other methods of detecting the orientation of data input module 200 arepossible. FIG. 5 illustrates how contact switch 510, which fits into arecess 500, can be used to determine an orientation of data input module200 in accordance with an embodiment of the present invention. In thisembodiment, the underside of data input module 200 includes recess 500in the upper left-hand corner, and a row of module contacts 420 locatedin the middle of the underside of data input module 200. When data inputmodule 200 is rotated 410 into a second orientation, module contacts 420remain in a row in the middle of the underside of data in input module200. However, recess 500 is shifted to the lower right-hand corner. Inthis embodiment, mounting surface 450 on portable computer 100 includesa contact switch 510 in the upper right hand corner, and a single row ofcomputer contacts 430 located in the middle of mounting surface 430.

By examining contact switch 510, portable computer 100 can determine theorientation of data input module 200. When data input module 200 ismounted to mounting surface 450 of portable computer 100 in a firstorientation, recess 500 covers contact switch 510 so that contact switch510 is not activated by data input module 200. When data input module200 is mounted in a second orientation, recess 500 does not covercontact switch 510. Hence, contact switch 510 is activated by pressurefrom the surface of data input module 200. When contact switch 510 isactivated, portable computer 100 knows data input module 200 is engagedin a second orientation.

In this embodiment, the orientation of data input module 200 determineswhether or not the actions of buttons 210 are reversed to compensate forrotation of data input module 210. The orientation may additionallydetermine the way in which signals are routed through computer contacts430, because computer contacts 430 connect to different module contacts420 after data input module 400 has been rotated. Furthermore, theorientation of data input module 200 may determine whether or not glidepoint 134 on data input module 200 is active or not.

Data input module 200 may be attached to portable computer 100 throughany conventional attachment means. In one embodiment, data input module200 is slidably attached to portable computer 100 through set ofmatching grooves in data input module 200 and portable computer 100. Inanother embodiment, data input module 200 is attached to portablecomputer 200 by means of a latch. In yet another embodiment, data inputmodule 200 is attached to portable computer 100 by a friction fitting.

FIG. 6 is a diagram illustrating an embodiment of data input module 200with an optional glide point 134 in accordance with an embodiment of thepresent invention. To save on the cost of a glide point, one embodimentof data input module 200 may include only buttons 210, and no glidepoint. In another embodiment, glide point 134 is included to allow foroperation of portable computer 100 with both a glide point and apointing stick.

FIG. 7 is a flow chart illustrating how buttons are activated dependingupon which pointing device is in use in accordance with an embodiment ofthe present invention. This sequence of operations can be used in asystem with separate glide point buttons 130 and pointing stick buttons136, as is illustrated in FIG. 1. The system starts at state 700, whichis a start state. The system next advances to state 710. In state 710,the system determines if the pointing stick is in use. If not, thesystem advances to state 730. If so, the system advances to state 720.At state 720, the system receives input from a button located nearpointing stick 132. The system next advances to state 730. At state 730,the system determines whether glide point 134 is in use. If not, thesystem advances to state 750, which is an end state. If so the systemadvances to state 740, in which the system receives input from a buttonlocated near glide point 134. Note that although the system is shownwith a start state 700 and an end state 750, the system may sequentiallyrepeat states 700 through 750.

FIG. 8 is a flow chart illustrating how a button is activated dependingupon the location of the button in accordance with an embodiment of thepresent invention. This sequence of operations can be used in a systemwith movable buttons, as is illustrated in FIG. 2. The system starts atstate 800, which is a start state. The system next advances to state810. In state 810, the system determines if the button is associatedwith pointing stick 132. If not, the system advances to state 830. Ifso, the system advances to state 820. At state 820, the system receivesinput from the button and pointing stick 132. The system next advancesto state 830. At state 830, the system determines whether the buttons isassociated with glide point 134. If not, the system advances to state850, which is an end state. If so the system advances to state 840, inwhich the system receives input from the button and glide point 134.Note that although the system is shown with a start state 800 and an endstate 850, the system may sequentially repeat states 800 through 850.

FIG. 9 is a flow chart illustrating how buttons are activated dependingupon which button was most recently used in accordance with anembodiment of the present invention. This sequence of operations can beused in a system with separate glide point buttons 130 and pointingstick buttons 136, as is illustrated in FIG. 1. The system starts atstate 900, which is a start state. The system next advances to state910. In state 910, the system determines whether pointing stick 132 orthe glide point 134 was most recently used. If glide point 134 was mostrecently used, the system advances to state 930. If pointing stick wasmost recently used, the system advances to state 920. At state 920, thesystem receives input from a button near pointing stick 132. The systemnext advances to state 940, which is an end state. At state 930, thesystem receives input from a button near glide point 134. Note thatalthough the system is shown with a start state 900 and an end state940, the system may sequentially repeat states 900 through 940.

FIG. 10 is a flow chart illustrating how buttons are activated basedupon system configuration information in accordance with an embodimentof the present invention. This sequence of operations can be used in asystem with separate glide point buttons 130 and pointing stick buttons136, as is illustrated in FIG. 1. The system starts at state 1000, whichis a start state. The system next advances to state 1010. In state 1010,the system examines system configuration information stored withinportable computer 100 to determine whether pointing stick 132 or theglide point 134 is to be used. If glide point 134 is to be used, thesystem advances to state 1030. If pointing stick is to be used, thesystem advances to state 1020. At state 1020, the system receives inputfrom a button near pointing stick 132. The system next advances to state1040, which is an end state. At state 1030, the system receives inputfrom a button near glide point 134. Note that although the system isshown with a start state 1000 and an end state 1040, the system maysequentially repeat states 1000 through 1040.

FIG. 11 is a flow chart illustrating a method of removing data inputmodule 200 and reattaching it in another configuration in accordancewith an embodiment of the present invention. This sequence of operationscan be used in a system with movable buttons, as is illustrated in FIG.2. The user starts at state 1100, which is a start state. The user thenadvances to state 1110. In state 1110, the user removes data inputmodule 200 from a first configuration on portable computer 100. The userthen advances to state 1120. At state 1120, the user attaches data inputmodule 200 to portable computer system 100 in a second configuration. Inone embodiment, this second configuration is rotated from the firstconfiguration as is illustrated in FIG. 3. In another embodiment, datainput module 200 is translated, and attached to portable computer 100 ata different location. The user then advances to state 1030. At state1030, the user inputs commands manually into portable computer system100 through data input module 200. The user then advances to state 1140,which is an end state. Note that although the system is shown with astart state 1100 and an end state 1140, the system may sequentiallyrepeat states 1100 through 1140.

The foregoing descriptions of embodiments of the invention have beenpresented for purposes of illustration and description only. They arenot intended to be exhaustive or to limit the invention to the formsdisclosed. Obviously, many modifications and variations will be apparentto practitioners skilled in the art.

What is claimed is:
 1. A method for configuring data input devices in a portable computer, the method comprising:fixedly mounting a rectangular data input module into a rectangular mounting cavity in a housing of the portable computer in a first orientation so that a button on the rectangular input module can be used with a first pointing device located on the housing of the portable computer; removing the rectangular data input module from the housing; rotating the rectangular data input module 180 degrees; fixedly mounting the rectangular data input module into the rectangular mounting cavity in the housing in a second orientation so that the button on the rectangular input module can be used with a second pointing device located on the rectangular data input module; and inputting commands manually into the data input module.
 2. The method of claim 1, wherein the inputting of commands into the data input module includes operating a button.
 3. The method of claim 1, wherein the inputting of commands into the data input module includes operating a glide point.
 4. The method of claim 1, wherein the inputting of commands into the data input module includes operating a track ball.
 5. The method of claim 1, wherein the inputting of commands into the data input module includes operating a pointing stick.
 6. The method of claim 1, further comprising:receiving input from the first pointing device and the second pointing device; keeping track of which pointing device is most recently used; if the first pointing device is most recently used, receiving input from a button associated with the first pointing device while ignoring input from a button associated with the second pointing device; and if the second pointing device is most recently used, receiving input from the button associated with the second pointing device while ignoring input from the button associated with the first pointing device.
 7. The method of claim 1, further comprising:receiving input from a keyboard disposed on the housing; and displaying an output to a display disposed on the housing.
 8. The method of claim 1, further comprising:determining if configuration information stored in the portable computer indicates that the first pointing device or the second pointing device is to be used; if the first pointing device is to be used, receiving input from a button associated with the first pointing device; and if the second pointing device is to be used, receiving input from a button associated with the second pointing device. 